Sanic 维护及使用情况分析

介绍

Sanic 是一个 Python Web 服务器和 Web 框架,可以快速进行开发。它允许使用 Python 3.5 中添加的 async / await 语法,这使您的代码无阻塞且快速。 Sanic 项目由社区维护 ,目标是提供一种易于构建、扩展并且简单启动和运行的高性能 HTTP 服务器。

使用情况

技术社区

从国内某技术社区 2018 年 11 月的一篇名为 “请教 Python 用什么框架写 API 比较好” 的文章中,进行了一个简要的分析。在网友的回复中,共提到三种语言,分别为 Python,PHP,Go。其中 Python Web 框架中,推荐排名第一的为 Flask(Flask-RESTful),第二的为 Django(Django REST framework),排名第三的为 Tornado,其他的还有 Falcon,Responder,Sanic,Bottle,Vibora,Apistar,Cherrypy,Starlette…

部分网友考虑到 Python 部署问题和性能问题,选择了 PHP 和 Go。

搜索引擎

从搜索引擎角度,将会对 Sanic 关键字在百度(国内)和 Google(国外)进行一个简要的分析,用此来反映国内外的用户数量,分析结果仅作参考。

百度

Sanic 关键字搜索指数(百度),如下图所示:

Sanic 关键字搜索指数(百度).png

Sanic,Django,Flask,Tornado,Falcon 关键字搜索指数(百度),如下图所示:

Sanic,Django,Flask,Tornado,Falcon 关键字搜索指数(百度).png

google

Sanic 关键字搜索指数(Google),如下图所示:

Sanic 关键字搜索指数(Google).png

Sanic,Django,Flask,Tornado,Falcon 关键字搜索指数(Google),如下图所示:

Sanic,Django,Flask,Tornado,Falcon 关键字搜索指数(Google).png

从百度的搜索量来看,在 2015 年 6 月出现过一次爆发式的增长,而在这之后急速下降,直到 2017 年 4 月才呈上升趋势。为何在 2015 年 6 月出现过一次爆发式的增加,可能和 Python 3.5 的发布(2014 年 9 月)有关。

谷歌的趋势没有出现过爆发增长的情况,最高点时间在 2015 年 3 月左右,和国内时间差不多。但是在这之后和国内呈现出相反的趋势,国外一直呈现出下滑的趋势,国内一直呈现出上升趋势。

维护情况

Sanic 现在由社区运营,版本发布遵循 CalVer 。每年发布4 个版本(三月,六月,九月,十二月)。目前最新版本为 19.03.1,最新 LST 版本为 18.12。社区采用 “RM” 职位的方式轮流任职,“RM” 负责主持在这期间的问题修复和功能增加等工作。Sanic 希望每一位开发人员都能参与到他们的维护当中,如果感兴趣可以加入 sanic-dev 或者 社区

简单教程

1
pip3 install sanic
1
2
3
4
5
6
7
8
9
10
11
from sanic import Sanic
from sanic.response import json

app = Sanic()

@app.route('/')
async def test(request):
return json({'hello': 'world'})

if __name__ == '__main__':
app.run(host='0.0.0.0', port=8000)

拓展

官方拓展

Sanic OpenAPI: 为 Sanic API 提供 Swagger UI API 文档

Sanic-Docker:官方提供了运行在 Python 3.7 之上,并且预安装了最新的 Sanic LTS 版本。平台为 Alpine Linux。

其他拓展

aiomysql:aiomysql 是一个用于从 asyncio 访问 MySQL 数据库的库,调研发现 SqlAlchemy 也支持 aiomysql,其次还有 TortoiseORM,二者都尝试了一下,体验都没有那么好,从 github 使用人数来看,还处于起步阶段。

aioredis:一个支持 asyncio 的库。